package Text9;

import java.util.*;

public class Main {
    //    第一行包含整数 n和 m，表示字符串长度和询问次数。
//    第二行包含一个长度为 n的字符串，字符串中只包含大小写英文字母和数字。
//    接下来 m行，每行包含四个整数 l1,r1,l2,r2，表示一次询问所涉及的两个区间。
//    注意，字符串的位置从 1开始编号。
    static int N = 100010, p = 131;
    static long[] has = new long[N];
    static long[] mul = new long[N];

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        String str = in.next();
        mul[0] = 1;
        for (int i = 1; i <= n; i++) {
            mul[i] = mul[i - 1] * p;
            has[i] = has[i - 1]*p + str.charAt(i - 1);
        }
        while (m-- > 0) {
            int l1 = in.nextInt();
            int r1 = in.nextInt();
            int l2 = in.nextInt();
            int r2 = in.nextInt();
            if (gethas(l1, r1) == gethas(l2, r2)) {
                System.out.println("Yes");
            } else {
                System.out.println("No");
            }
        }
    }

    private static long gethas(int l, int r) {
        return has[r] - has[l - 1] * mul[r - l + 1];
    }
}
